草庐IT

c++ - 临时实例的常量正确性

全部标签

ruby-on-rails - 在 Rails 3.1 中存储模型特定常量的最佳位置?

我在名为user的模型中有一个type字段,它是数据库中的一个int。int的值指定了它的存储类型。示例:0=妈妈1=爸爸2=祖母等等我还有其他几个这样的字段,所以创建关联表有点过分了。不是在模型和Controller逻辑的条件语句中检查那些int值,而是在Rails中有一个地方来存储这些常量。这样我就可以从我的模型和Controller中做到这一点?ifmyuser.type==MOMelsifmyuser.type==GRAND_MOTHER编辑:我最后采用的解决方案:在模型中:#constantsTYPES={:mom=>0,:dad=>1,:grandmother=>2,:gr

ruby - 模块中的实例方法

考虑以下代码:moduleModNamedefauxputs'aux'endend如果我们将module替换为class,我们可以执行以下操作:ModName.new.aux但是,模块不能被实例化。有没有办法在模块上调用aux方法? 最佳答案 想想什么是aux。什么对象会响应aux?它是一个实例方法,这意味着包含ModName的类的实例将响应它。ModName模块本身不是此类的实例。如果您已将ModName定义为一个类,这也将不起作用—您不能在没有实例的情况下调用实例方法。模块非常像可以混合到其他类中以添加行为的类。当一个类混合在一

ruby - 如何找到在 Ruby 中定义常量的位置?

使用pry,通过edit-method命令可以非常简单地找到定义方法的位置并查看源代码。然而,类本身没有对应关系。当该类本身没有定义任何方法时,很难通过pry找到来源。类是常量,所以这相当于询问在哪里可以找到定义特定Ruby常量的源代码。非常感谢。 最佳答案 在ruby​​中,$"保存所有通过Kernel.load加载的文件名。所以你可以尝试这样的事情:constant=User$".detect{|load_path|load_path.include?(constant.to_s.underscore)}注意:underscor

ruby - 有没有办法使 Ruby 临时文件永久化?

如果我通过Tempfile创建了一个临时文件,除了将它复制到另一个文件之外还有什么方法可以使它成为“永久”文件吗?我想避免在关联的Tempfile实例被垃圾回收或进程终止时删除它。与此相关,有没有一种方法可以利用Tempfile机制(或使用类似的机制)来获取"new"文件名,而无需以该名称创建文件? 最佳答案 不是真的。对于问题本身,请参见:ObjectSpace.undefine_finalizer(tmpfile)Tempfile库使用RubyObjectSpace终结器在垃圾回收时自动删除自身。通过使用上面的行,如果你不删除它

如何查看两个提交之间更改的正确指标?

如何正确使用git差异来计数:添加,修改,删除和每个文件的总文件行?另外,我需要忽略空白和评论行。看答案您可以通过:gitdiff--stat以及快速的历史概述:gitlog--stat

ruby - 如何获取 BasicObject 实例的类?

我有一个脚本,该脚本使用不带参数的ObjectSpace#each_object进行迭代。然后它打印每个类存在多少个实例。我意识到有些类重新定义了#class实例方法,所以我不得不寻找另一种方法来获取实际的类;假设它存储在变量"klass"中,并且klass===object为真。在Ruby1.8中我可以这样做,假设Object没有被monkeypatched:Object.instance_method(:class).bind(object).call这适用于ActiveSupport::Duration实例:#Ruby1.8#(triestotrickus)20.seconds.

ruby-on-rails - 在 Ruby 1.9 中访问类变量的正确方法是什么?

我正在尝试设置一些类变量来存储Rails应用程序中的路径(但我认为这更像是一个ruby​​问题)基本上我的类(class)是这样的classImage但是当我尝试通过执行Image.path_to_images从我的Controller访问@@path_to_images时,我得到一个NoMethodError当我尝试使用Image.class_eval(@@path_to_images)时,我在ImagesController中得到未初始化的类变量@@path_to_images我四处搜索了一下,我所看到的都说这些会起作用,所以我对此很困惑此外,我尝试像这样用ruby​​控制台定义简

ruby-on-rails - spork 0.9.2 和 rspec 3.0.0 = 未初始化常量 RSpec::Core::CommandLine (NameError)

我正在使用spork0.9.2和rspec3.0.0。尝试运行测试rspec--drb时出现异常C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/spork-0.9.2/lib/spork/test_framework/rspec.rb:11:inrun_tests:未初始化常量RSpec::Core::CommandLine(名称错误)但是当将rspec版本更改回2.6时-一切正常。有没有人遇到过同样的问题?是否可以变通? 最佳答案 原因是RSpec::Core::Comma

ruby-on-rails - Rails Controller 中的实例和类变量

我是Rails和ruby​​的新手。我正在研究类和实例变量的概念。我理解其中的区别,但是当我使用rails中的Controller进行尝试时,它让我感到困惑。我所做的是在类方法之外声明了一个类和实例变量:classBooksController我的印象是@insworld具有“我的爱好”的值,但是当我在index方法中尝试检查@insworld的值时,@insworld返回了一个零值。@@world的值为“HelloWorld”。那么这里发生了什么?它们不是在同一个类中定义的吗? 最佳答案 类在Ruby中也是对象,因此它们可以有自己

类名的 Ruby 未初始化常量 NameError

我想从父类继承一个子类。这是我的代码。在3个单独的文件中创建3个类。classTransportation#codesendclassPlane当我运行这段代码时,我得到了Boat的错误,但是当我只创建了Plane时,Plane没有问题:uninitializedconstantTransportation(NameError)谁能帮我解决这个问题?谢谢 最佳答案 这段代码没有理由失败,除非Transportation的定义在另一个文件中。如果是这种情况,并且它们位于不同的文件中,请不要忘记在包含用法的其他文件之前要求具有Trans